SageMaker Studio で立ち上げたTerminal環境でAWS CLIでスイッチロールをするときの設定方法
はじめに
好物はインフラとフロントエンドのかじわらゆたかです。 SageMaker StudioでTerminalを立ち上げてAWS CLIを使う際にAssume Roleをするさいの設定方法について解説します。
どうすればよいか?
SageMaker Studioは内部ではECSを用いて環境を作成している模様です。
そのため、~/.aws/config
のsouce_profileにはAmazon ECS コンテナにアタッチされた IAM ロールの使用を明示するEcsContainerを記載する必要があります。
具体的には以下のようになります。
[profile assumeTarget] role_arn = arn:aws:iam::123456789012:role/assumeTargetRole credential_source = EcsContainer
AWS CLI での IAM ロールの使用 - AWS Command Line Interface
あとは作成したProfileを使うようにAWS CLIで指定して実行すればOKです。
aws s3 ls --profile assumeTarget
まとめ
Assume元がEC2やECS等の場合、AWSCLIでAssumeする際はAssume元の指定は明示する必要があるという話でした。 また、今回のSageMaker Studioのようなケースで裏で動いている環境がそういった場合も、同様のことを認識しておく必要があります。